public class PlayerWallJumpState : PlayerState
{
    public PlayerWallJumpState(Player player, string animBoolName) : base(player, animBoolName)
    {
    }

    public override void Enter()
    {
        base.Enter();
        stateTimer = 0.2f;
        player.SetVelocity(-player.FacingDirection * player.moveSpeed, player.jumpForce);
    }

    public override void Exit()
    {
        base.Exit();
    }

    public override void Update()
    {
        base.Update();
        if (stateTimer < 0)
            StateMachine.ChangeState(player.AirState);
        if (player.IsGroundDetected())
            StateMachine.ChangeState(player.GroundedState);
    }
}